White Space Management Mechanism

ABSTRACT

A computer generated method disclosed. The method includes examining a print job data stream spooled in a spooled print production file, identifying one or more white space regions within documents in the print production file and inserting content into each of the white space regions.

FIELD OF THE INVENTION

The invention relates to the field of printing systems. Particularly,the invention relates to identifying and utilizing blank spaces in postproduction print jobs.

BACKGROUND

Printers are common peripheral devices attached to computers. A printerallows a computer user to make a hard copy of documents that are createdin a variety of applications and programs on a computer. To functionproperly, a channel of communication is established (e.g., via a networkconnection) between the printer and the computer to enable the printerto receive commands and information from the host computer.

Once a connection is established between a workstation and the printer,printing software is implemented at a print server to manage a print jobfrom order entry and management through the complete printing process.The printing software may simultaneously manage in excess of thousandsof print jobs that have been spooled (or queued) for production. Each ofthese print jobs may include various documents that include unused areas(or white spaces) at which content may be placed, but are left blank asa result of the defined print job data.

In many print applications, the existence of such magnitudes of whitespace is wasteful. For example, a print job performed by a bank thatproduces thousands of statements to be mailed to customers may result inhundreds of pages worth of white space. Thus, the bank is unable tomaximize the efficiency of print jobs by utilizing unused space on printpages. Since the cost of producing the statements has already beenexpended at the time of production, the bank could take full advantageof such an investment by having an opportunity to utilize the whitespace to place content (e.g., advertisements, offers, etc.) for which aconsumer may have interest.

Accordingly, a mechanism to identify and utilize white spaces in printjobs is desired.

SUMMARY

In one embodiment a computer generated method is disclosed. The methodincludes examining a print job data stream spooled in a spooled printproduction file, identifying one or more white space regions withindocuments in the print production file and inserting content into eachof the white space regions.

In another embodiment, a print server is disclosed. The print serverincludes a printing software product having a whitespace manager toexamine a print job data stream spooled in a spooled print productionfile stored at the server, identify one or more white space regionswithin documents in the print production file and insert content intoeach of the white space regions.

In a further embodiment, a computer system is disclosed. The computersystem includes a memory to store a printing software product, aprocessor, coupled to the memory, to execute the printing softwareproduct and a display device to display a graphical user interface (GUI)upon the processor executing the printing product. The GUI includes menuoptions to enable identification of one or more white space regionswithin documents in a print production file and selection of content tobe inserted in the white space regions.

BRIEF DESCRIPTION OF THE DRAWINGS

A better understanding of the present invention can be obtained from thefollowing detailed description in conjunction with the followingdrawings, in which:

FIG. 1 illustrates one embodiment of a data processing system network;

FIG. 2 is a flow diagram illustrating one embodiment of performing whitespace management;

FIG. 3 illustrates one embodiment of searching for a white space;

FIGS. 4A-4H are screen shots of various embodiments of a GUI; and

FIG. 5 illustrates one embodiment of a computer system.

DETAILED DESCRIPTION

A whitespace management mechanism is described. In the followingdescription, for the purposes of explanation, numerous specific detailsare set forth in order to provide a thorough understanding of thepresent invention. It will be apparent, however, to one skilled in theart that the present invention may be practiced without some of thesespecific details. In other instances, well-known structures and devicesare shown in block diagram form to avoid obscuring the underlyingprinciples of the present invention.

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment is included in at least one embodimentof the invention. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment.

FIG. 1 illustrates one embodiment of a data processing system network100. Network 100 includes a data processing system 102, which may beeither a desktop or a mobile data processing system, coupled viacommunications link 104 to network 106. In one embodiment, dataprocessing system 102 is a conventional data processing system includinga processor, local memory, nonvolatile storage, and input/output devicessuch as a keyboard, mouse, trackball, and the like, all in accordancewith the known art. In one embodiment, data processing system 102includes and employs the Windows operating system, or other operatingsystem, and/or network drivers permitting data processing system 102 tocommunicate with network 106 for the purposes of employing resourceswithin network 106.

Network 106 may be a local area network (LAN) or any other network overwhich print requests may be submitted to a remote printer or printserver. Communications link 104 may be in the form of a network adapter,docking station, or the like, and supports communications between dataprocessing system 102 and network 106 employing a network communicationsprotocol such as Ethernet, the AS/400 Network, or the like.

According to one embodiment, network 106 includes a print server 108that serves print requests over network 106 received via communicationslink 110 between print server 108 and network 106. Print server 108subsequently transmits the print requests via communications link 110 toone of printers 109 for printing, which are coupled to network 106 viacommunications links 111.

In one embodiment, a print application at data processing system 102allows a user to select the desired print server 108 and submit requestsfor service requests to printer 109 via print server 108 over network106. In a further embodiment, the print application implements the(Advanced Function Presentation) AFP™ presentation system developed byInternational Business Machines Corporation to represent documents in adata format that is independent of the methods that are utilized tocapture or create those documents.

According to the AFP system, documents may include combinations of text,image, graphics, and/or barcode objects in device and resolutionindependent formats. Documents may also include and/or reference fonts,overlays, and other resource objects, which are required at presentationtime to present the data properly. In other embodiments,additional/alternative presentation architectures may be implemented atthe print application.

However in an AFP embodiment, the print application provides a MixedObject Document Content Architecture (MO:DCA) data stream to printserver 108. In such an embodiment, the AFP MO:DCA data streams areobject-oriented streams including, among other things, data objects,page objects, and resource objects. In a further embodiment, AFP MO:DCAdata streams include a Resource Environment Group (REG) that isspecified at the beginning of the AFP document, before the first page.When the AFP MO:DCA data streams are processed by print server 108, theREG structure is encountered first and causes server 108 to download anyof the identified resources that are not already present in the printer.

Although described as separate entities, other embodiments may includeprint server 108 being incorporated in one or more of the printers 109.In yet further embodiments, the print server and printer may bephysically separate entities. Therefore, the data processing systemnetwork depicted in FIG. 1 is selected for the purposes of explainingand illustrating the present invention and is not intended to implyarchitectural limitations. Those skilled in the art will recognize thatvarious additional components may be utilized in conjunction with thepresent invention.

According to one embodiment, print server 108 implements a printingsoftware product that manages the printing of documents from dataprocessing system 102 and one or more of printers 109. In otherembodiments, the printing software product manages printing of documentsfrom multiple data processing systems 102 to the one or more printers109. In one embodiment, the printing software product may be implementedusing either InfoPrint Manager (IPM) or InfoPrint ProcessDirector(IPPD), although other types of printing software may be used instead.In a further embodiment, the print application at data processing system102 interacts with the printing software product to provide forefficient transmission of print jobs.

In one embodiment, the printing software product includes a graphicaluser interface (GUI) 120 accessible at a data processing system 102 thatenables a system administrator (or operator) to interact with theprinting software product and print application. In such an embodiment,GUI 120 includes a whitespace manager that records and manages whitespace identified in documents spooled for production at the printingsoftware product.

FIG. 2 is a flow diagram illustrating one embodiment of a processperformed on a document by a whitespace manager. At processing block210, the whitespace manager identifies one or more white spaces on aprint job spooled at the printing software product. In one embodiment,three types of white spaces may be identified. These include BLANKpages, FIXED spaces and SEARCH spaces. As will be described in greaterdetail below, the fixed and search spaces may involve operatorinteraction with the whitespace manager in order to identify regions ofwhite space on a page.

At processing block 220, the identified white spaces are quantified. Forinstance, fixed white space regions are quantified in terms of the sizeand type of (e.g., text or image) content that may be placed within thewhite space. This quantification may subsequently be codified andstored. In one embodiment, a quantification value may be a number ofcharacters of message text in a certain point size that would fit in thewhite space region, while in other embodiments it may include dimensionsof an image that could fit within the region.

At processing block 230, one or more white space regions are filled withcontent. In one embodiment, a white space region may be filled with apredetermined message. However in other embodiments, dynamic messagesmay be used to fill a region based on variable data included on adocument. For example, whitespace manager may analyze financial dataincluded on a bank statement that is waiting to be printed. Based on theanalysis whitespace manager may fill the white space region with contentappropriate to a financial message corresponding to the analysis.

As discussed above, whitespace manager identifies BLANK pages, FIXEDspaces and SEARCH spaces. Completely blank pages are one of the greatestsources of white space in current print applications. For instance, mostduplex (e.g., N-up duplex) applications force the end of one client'sstatement in a manner that precludes any possibility of inadvertentexposure of the statement to another client.

Within AFP this process is implemented by an Eject to Front Facing(EFF). However, the process may also be implemented by adding actualblank pages to the application (e.g., padding any odd-pg statement to aneven page count). A minor variant to the blank page is the “almost”blank page, which appears in a datastream, but provides no usefulmessage content (e.g., “this page intentionally left blank” pages).Because of blank pages attributed to EFF and similar processes, a 25%increase of actual pages printed from pages of a print job file mayoccur. For example, a client application that includes all three pagelong statements may result in a result in a 75,000 page print filebecoming ˜100,000 pages at print time.

Therefore, the whitespace manager automatically identifies spaces wherea blank page exists and fills the pages based upon one or morepredetermined rules for indicating how the pages are to be filled withappropriate messages. According to one embodiment, the whitespacemanager examines a print job data stream. In such an embodiment, thewhitespace manager uses page data, mail piece breaks, duplex/simplex,and any advanced settings (e.g., constant back IMM) to identify theblank pages.

In embodiments using 2-up duplex (e.g., pages scaled to 2 pages per pageusing double-sided printing), odd-page-length documents are padded witha real page at the end of the document to preclude ejecting blank pageswhen the printer is handling the data. Thus, the whitespace managernormalizes all data streams to include an even number of page images sothat each physical sheet of paper is filled front and back before beingsent to the printer.

In other embodiments, pages are identified in existing legacy streams,such as “this page intentionally left blank” pages). Thus, blank pagesmay be identified by identification of a small area (e.g., the region inwhich that legacy text appears). If a page is found to be blank otherthan the specific region(s) identified, the page is deemed to be a“blank” page, and is swapped out in favor of a targeted message page.Other embodiments may include looking for a particular string on a pagesuch (e.g., “this page intentionally left blank”).

Once identified, blank pages are filled with a real page of messagesbased on user defined rules. In one embodiment, a message may include anentire pre-defined page that includes a static set of messages ofinterest to many clients. For example, a bank may add a simple 8.5×11page that identifies current mortgage rates, CD rates, a website tovisit, and/or other messages of potential interest.

In another embodiment, the identified blank page may be divided into aseries of targeted messages including smaller coupons, messages, etc. Inyet a further embodiment, the blank page may be filled with targetedtrans-promotional messages tailored to a specific client, taking intoaccount variable data included in the document. For instance, thevariable data may include geographic region, value of the statement, andclient preferences.

For FIXED space management, the whitespace manager is utilized by anoperator to identify a fixed region on a page. In such an embodiment,the selected region is one that is known to be blank. Fixed spaceregions are often rectangular blank spaces within the top or bottom areaof a page. However in further embodiments, other types of shaped regionsmay be identified and managed in a similar way (e.g., a circle couldidentify a suitable region for a circular message (image or text) to beplaced on the page).

According to one embodiment, the operator identifies the region assuitable for white space message placement. In such an embodiment,identification of a region may be implemented using any reasonablemethod (e.g., Cartesian or Polar coordinates, etc.). However, in otherembodiments identification is implemented using an interactive systemagainst a visual image of a production file in order to identify aprecise region to be managed as fixed white space. Within the whitespacemanager this is done using a GUI and a mouse, against a visualrepresentation of a page data for a particular application.

Once identified, the fixed regions are quantified in terms of the sizeof messages (text or image) that can be placed within them. As discussedabove, the quantified data is then codified and stored. These storedquantified regions are subsequently combined with run-time businessrules to enable the whitespace manager to fill the regions. Like forBLANK space management, a fixed region's dimensions are known inadvance, which allows for messages to be tailored in advance to thespecific size of the fixed spaces.

In one embodiment, a safety mechanism is constructed at run time. Themechanism checks the fixed space against the actual page data to makesure the region is actually blank. The mechanism may be performed inabsolute terms by checking actual rendered images of page data, or inrelative terms by allowing for underlying forms and logos via anoverlay, to confirm that no text or foreground images occupy the fixedspace region that is supposed to be blank. In a further embodiment, thesafety mechanism includes error handling to provide an alert that theregion is not blank. The error handling may include, for example, asimple warning message and suppression of an individual messageplacement, or raising an error condition since the region was identifiedby the operator as one that was supposed to be completely blank.

SEARCH space management is implemented in applications for which thereis a region of a page that can be completely full, but is often onlypartially filled. This is common, for example, in billing applicationswhere a particular region of a document is filled with banktransactions, stock trades, phone records, or other detailed line itemdata. This data is typically reported via one or more transactionalpages filled with the billing details.

However, the last of the transactional pages, depending upon howprecisely the actual transaction details fill the available space, oftenhas some variable amount of blank space. Particularly, the last pageusually includes a random distribution of 1−N transactions, thus leavingfrom zero to (N−1) rows of whitespace, where N is the maximum numbertransactions that may listed on the page.

In other instances, large regions of a page may be intended for text,but may not be entirely filled via an application that produces thedata, thus leaving a white space. According to one embodiment, thewhitespace manager identifies such white space in order to fill thespace with appropriate messages.

As with the fixed spaces, SEARCH space management begins with anoperator utilizing the whitespace manager to identify each region in adocument that may include white space. In one embodiment, a regiondefinition is checked against a sample/reference file to report a numberof pages that include actual white space in a particular region, as wellas the sizes of the white space. Thus, the whitespace manager enablesinteractive planning and assessment of a live production file for whitespace available within a certain region.

In a further embodiment, a rectangle is drawn around an entire region tobe searched (e.g., a text portion of an automated letter application, atransactional data area, etc.) in order to identify a search region. Asdiscussed above, other shaped regions types (circle, triangle, etc.) maybe identified and managed. Subsequently, at run-time, the white spacemanager identifies an appropriate subset of the search space that wouldbe available as white space for message placement.

As an example, if an identified 5.5″×4″ area is found to have text inthe top 1″ only, an appropriate subset (e.g., 4.5″×4″) will beidentified as white-space. Such identification can also allow formargins, kerning, and other details. In this example, the regionidentified may be only 4″×4″ if allowing for a 0.5″ margin was desiredto set whitespace messages apart. FIG. 3 illustrates one embodiment ofsearching for a white space on a page 300. As shown in FIG. 3, page 300includes a search area 310 with margins 320. The whitespace managersearches page 300 until identifying white space 330 in search area 310,between margins 320.

Also during run time, search spaces are checked against the actual datawithin the file to assess if criteria for message placement are met, andif so, the regions may be filled with the desired message. As discussedabove, business rules are used during run time to guide how each spaceis filled. In one embodiment a region is checked, during run timeevaluation, against one or more bitmap planes of page images (e.g., inthe CMYK (or color) or K (or black/white) planes) to make sure that notext or image intrudes upon the space.

However in other embodiments, text or image messages may be placed ontop of an overlay or other type of “image” even if some backgroundpixels occur within the search space. Therefore, the whitespace managermay look for page text that lands within a region at a current time. Ina further embodiment, the whitespace manager stores an image of alldocuments for which white space has been filled in order to include aprecise record of the appearance of messages placed on each document.

FIGS. 4A-4H are screen shots of various embodiments of a GUI showing aGUI 120 AFP whitespace manager 400. FIG. 4A illustrates a screen shot ofone embodiment whitespace manager 400 having a region 410 that isselected in a transactional page of phone billing details to search insubsequent pages of a document. FIG. 4B illustrates a screen shot ofanother embodiment of whitespace manager 400 which enables an operatorto define rules for the white space. For instance, an operator may setminimum white space dimensions to search for, as well as select whichpages to search. FIG. 4C illustrates a screen shot of an embodiment ofwhitespace manager 400 showing the results of the search. As shown inFIG. 4C, a region 420 matching the criteria of the search has beenfound. Further, a bottom pane of whitespace manager 400 provides thedetails of the white space region.

FIG. 4D illustrates a screen shot of one embodiment whitespace manager400 in which region 410 is a known white space region. FIG. 4Eillustrates a screen shot of an embodiment of the rules definition pageof whitespace manager 400 corresponding to the selection of the knownwhite space region. FIG. 4F illustrates a screen shot of an embodimentof whitespace manager 400 showing a region 450 resulting from searchresults from selecting a known region selection. Further, the bottompane of whitespace manager 400 provides a list, along with the detailsof the found white space regions.

FIG. 4G illustrates a screen shot of one embodiment whitespace manager400 used for specifying rules for adding content to the found whitespace regions. As shown in FIG. 4G, whitespace manager 400 includesconditions section 460 and content section 465, each including variousbuttons and menus to establish conditions and content for filling whitespace regions. For instance, an operator may enter text to be insertedto a whitespace region upon conditions entered in section 460 being met.According to one embodiment, each whitespace region has its own set ofrules. FIG. 4H illustrates a screen shot of an embodiment of whitespacemanager 400 showing region 450 being filled with text 470 resulting fromthe text entered in content section 465.

FIG. 5 illustrates a computer system 500 on which data processing system102 and/or server 108 may be implemented. Computer system 500 includes asystem bus 520 for communicating information, and a processor 510coupled to bus 520 for processing information.

Computer system 500 further comprises a random access memory (RAM) orother dynamic storage device 525 (referred to herein as main memory),coupled to bus 520 for storing information and instructions to beexecuted by processor 510. Main memory 525 also may be used for storingtemporary variables or other intermediate information during executionof instructions by processor 510. Computer system 500 also may include aread only memory (ROM) and or other static storage device 526 coupled tobus 520 for storing static information and instructions used byprocessor 510.

A data storage device 525 such as a magnetic disk or optical disc andits corresponding drive may also be coupled to computer system 500 forstoring information and instructions. Computer system 500 can also becoupled to a second I/O bus 550 via an I/O interface 530. A plurality ofI/O devices may be coupled to I/O bus 550, including a display device524, an input device (e.g., an alphanumeric input device 523 and or acursor control device 522). The communication device 521 is foraccessing other computers (servers or clients). The communication device521 may comprise a modem, a network interface card, or other well-knowninterface device, such as those used for coupling to Ethernet, tokenring, or other types of networks.

Embodiments of the invention may include various steps as set forthabove. The steps may be embodied in machine-executable instructions. Theinstructions can be used to cause a general-purpose or special-purposeprocessor to perform certain steps. Alternatively, these steps may beperformed by specific hardware components that contain hardwired logicfor performing the steps, or by any combination of programmed computercomponents and custom hardware components.

Elements of the present invention may also be provided as amachine-readable medium for storing the machine-executable instructions.The machine-readable medium may include, but is not limited to, floppydiskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs,RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media orother type of media/machine-readable medium suitable for storingelectronic instructions. For example, the present invention may bedownloaded as a computer program which may be transferred from a remotecomputer (e.g., a server) to a requesting computer (e.g., a client) byway of data signals embodied in a carrier wave or other propagationmedium via a communication link (e.g., a modem or network connection).

Whereas many alterations and modifications of the present invention willno doubt become apparent to a person of ordinary skill in the art afterhaving read the foregoing description, it is to be understood that anyparticular embodiment shown and described by way of illustration is inno way intended to be considered limiting.

Therefore, references to details of various embodiments are not intendedto limit the scope of the claims, which in themselves recite only thosefeatures regarded as essential to the invention.

1. A computer generated method comprising: examining a print job datastream spooled in a spooled print production file; identifying one ormore white space regions within documents in the print production file;and inserting content into each of the white space regions.
 2. Themethod of claim 1 further comprising quantifying each of the white spaceregions to establish one or more characteristics of the content to beinserted into each white space region.
 3. The method of claim 1 whereinthe content is inserted into the white space regions according to rulesassociated with each white space region.
 4. The method of claim 3wherein the rules indicate that a predetermined message is to beinserted into a white space region.
 5. The method of claim 3 wherein therules indicate that a dynamic message is to be inserted into a whitespace region based upon variable data include in a document on which thewhite space region is located.
 6. The method of claim 1 wherein a whitespace region is a blank page region.
 7. The method of claim 6 whereinthe blank page region is identified using page data within the printproduction file.
 8. The method of claim 6 wherein the blank page regionis identified using legacy streams within the print production file. 9.The method of claim 1 wherein a white space region is a fixed whitespace region in one or more documents in the print production file isknown to be blank.
 10. The method of claim 9 wherein the fixed whitespace region is identified using coordinates.
 11. The method of claim 9wherein the fixed white space region is identified using a graphicaluser interface to access an image of the print production file.
 12. Themethod of claim 9 further comprising comparing the fixed white spaceregion to page data to determine if the fixed white space region isblank.
 13. The method of claim 1 wherein a white space region is asearch white space region in one or more documents in the printproduction file that is identified by searching regions in documentsthat have variable white space regions.
 14. The method of claim 13wherein the identifying the search white space region comprises:selecting a search region; identifying a subset of the search regionavailable for content placement; and comparing the subset of the searchregion to the print production file to determine if content placement isavailable.
 15. A print server comprising a printing software producthaving a whitespace manager to examine a print job data stream spooledin a spooled print production file stored at the server, identify one ormore white space regions within documents in the print production fileand insert content into each of the white space regions.
 16. The printserver of claim 15 wherein the whitespace manager quantifies each of thewhite space regions to establish one or more characteristics of thecontent to be inserted into each white space region.
 17. The printserver of claim 15 wherein the whitespace manager inserts the contentinto the white space regions according to rules associated with eachwhite space region.
 18. The print server of claim 17 wherein the rulesindicate that a predetermined message is to be inserted into a whitespace region.
 19. The print server of claim 17 wherein the rulesindicate that a dynamic message is to be inserted into a white spaceregion based upon variable data include in a document on which the whitespace region is located.
 20. The print server of claim 15 wherein awhite space region is a blank page region.
 21. The print server of claim15 wherein a white space region is a fixed white space region in one ormore documents in the print production file is known to be blank. 22.The print server of claim 21 wherein the fixed white space region isidentified using a graphical user interface to access an image of theprint production file.
 23. The print server of claim 15 wherein a whitespace region is a search white space region in one or more documents inthe print production file that is identified by searching regions indocuments that have variable white space regions.
 24. The print serverof claim 23 wherein the whitespace manager identifies by selecting asearch region, identifying a subset of the search region available forcontent placement and comparing the subset of the search region to theprint production file to determine if content placement is available.25. An article of manufacture comprising a machine-readable mediumincluding data that, when accessed by a machine, cause the machine toperform operations comprising: examining a print job data stream spooledin a spooled print production file; identifying one or more white spaceregions within documents in the print production file; and insertingcontent into each of the white space regions.
 26. The article ofmanufacture of claim 25 when accessed by the machine, further cause themachine to perform operations comprising quantifying each of the whitespace regions to establish one or more characteristics of the content tobe inserted into each white space region.
 27. The article of manufactureof claim 25 wherein the content is inserted into the white space regionsaccording to rules associated with each white space region.
 28. Thearticle of manufacture of claim 27 wherein the rules indicate that apredetermined message is to be inserted into a white space region. 29.The article of manufacture of claim 27 wherein the rules indicate that adynamic message is to be inserted into a white space region based uponvariable data include in a document on which the white space region islocated.
 30. A computer system comprising: a memory to store a printingsoftware product; a processor, coupled to the memory, to execute theprinting software product; and a display device to display a graphicaluser interface (GUI) upon the processor executing the printing product,the GUI having menu options to enable identification of one or morewhite space regions within documents in a print production file andselection of content to be inserted in the white space regions.
 31. Thecomputer system of claim 30 wherein the menu options further compriserules to select content to be inserted into each white space region. 32.The computer system of claim 31 wherein a first menu option enables aselection of rules to indicate that a predetermined message is to beinserted into a white space region.
 33. The computer system of claim 31wherein a second menu option enables a selection of rules to indicatethat a dynamic message is to be inserted into a white space region basedupon variable data include in a document on which the white space regionis located.
 34. The computer system of claim 30 wherein the menu optionsinclude an option to identify a fixed white space region by accessing animage of the print production file.
 35. The computer system of claim 30wherein the menu options include an option to select a search region inone or more documents in the print production to identify one or moresubset white space regions.